home *** CD-ROM | disk | FTP | other *** search
/ Graphics Plus / Graphics Plus.iso / info / rtnews / rtnv3n1 < prev    next >
Encoding:
Text File  |  1994-10-16  |  51.8 KB  |  1,204 lines

  1. Article 9638 of comp.graphics:
  2. Path: cs.yale.edu!yale!mintaka!think!zaphod.mps.ohio-state.edu!rpi!batcomputer!toc
  3. From: toc@batcomputer.tn.cornell.edu (Timothy F. O'Connor)
  4. Newsgroups: comp.graphics
  5. Subject: Ray Tracing News, Volume 3, Number 1
  6. Summary: here's another one, at long last
  7. Message-ID: <9490@batcomputer.tn.cornell.edu>
  8. Date: 3 Jan 90 17:04:13 GMT
  9. Reply-To: wrath.cs.cornell.edu!eye!erich (Eric Haines)
  10. Organization: 3D/Eye, Inc
  11. Lines: 1189
  12.  
  13.  
  14.  _ __                 ______                         _ __
  15. ' )  )                  /                           ' )  )
  16.  /--' __.  __  ,     --/ __  __.  _. o ____  _,      /  / _  , , , _
  17. /  \_(_/|_/ (_/_    (_/ / (_(_/|_(__<_/ / <_(_)_    /  (_</_(_(_/_/_)_
  18.              /                               /|
  19.             '                               |/
  20.  
  21.             "Light Makes Right"
  22.  
  23.             January 2, 1990
  24.                 Volume 3, Number 1
  25.  
  26. Compiled by Eric Haines, 3D/Eye Inc, 2359 Triphammer Rd, Ithaca, NY 14850
  27.     NOTE ADDRESS CHANGE: wrath.cs.cornell.edu!eye!erich
  28.     [distributed by Michael Cohen <m-cohen@cs.utah.edu>, but send
  29.     contributions and subscriptions requests to Eric Haines]
  30. All contents are US copyright (c) 1989,1990 by the individual authors
  31. Archive locations: anonymous FTP at cs.uoregon.edu (128.223.4.1) and at
  32.            freedom.graphics.cornell.edu (128.84.247.85), /pub/RTNews
  33. Other sites: uunet.uu.net:/graphics
  34.  
  35. Contents:
  36.     Introduction
  37.     New People
  38.     Archive Site for Ray Tracing News, by Kory Hamzeh
  39.     Ks + T > 1, by Craig Kolb and Eric Haines
  40.     Quartic Roots, and "Intro to RT" Errata, by Larry Gritz and Eric Haines
  41.     More on Quartics, by Larry Spence
  42.     Question: Kay and Kajiya Slabs for Arbitrary Quadrics?
  43.     by Thomas C. Palmer
  44.     Ambient Term, by Pierre Poulin
  45.     Book Reviews on Hierarchical Data Structures of Hanan Samet,
  46.     by A. T. Campbell, III
  47.     Comparison of Kolb, Haines, and MTV Ray Tracers, Part I, by Eric Haines
  48.     Raytracer Performance of MTV, by Steve Lamont
  49.     BRL-CAD Ray Tracer Timings, by Gavin Bell
  50.     BRL-CAD Benchmarking and Parallelism, by Mike Muuss
  51.     ======== USENET cullings follow ========
  52.     Rayshade Patches Available, by Craig Kolb
  53.     Research and Timings from IRISA, by Didier Badouel
  54.     Concerning Smart Pixels, by John S. Watson
  55.     Input Files for DBW Render, by Tad Guy
  56.     Intersection with Rotated Cubic Curve Reference, by Richard Bartels
  57.     Needed: Quartz surface characteristics, by Mike Macgirvin
  58.     Solution to Smallest Sphere Enclosing a Set of Points, by Tom Shermer
  59.     True Integration of Linear/Area Lights, by Kevin Picott
  60.  
  61. -------------------------------------------------------------------------------
  62.  
  63. Introduction
  64.  
  65.     This issue's focus is on timings from various people using a wide
  66. selection of hardware and software.  Much of the delay in getting out this
  67. issue was my desire to finish up my own timing tests of MTV's, Kolb's, and my
  68. own ray tracers on the same machine.  I hope some of you will find this
  69. information of use.
  70.  
  71.     Another feature of this issue is a pair of book reviews.  One of the
  72. purposes of the RT News is to provide people with sources of information
  73. relevant to ray tracing.  So, I would like to see more reviews, or even just
  74. brief descriptions of articles and books that you come across.  Keeping up to
  75. date in this field is going to take more time as the years go by, so please do
  76. pass on any good finds you may have.  Also, if you're an author, please feel
  77. free to send a copy of the abstract here for publication.  This service is
  78. already provided to a certain extent by SIGGRAPH for thesis work.  However,
  79. even a duplication of their efforts is worthwhile, since an electronic version
  80. is much easier to search and manipulate.
  81.  
  82.     Finally,
  83.  
  84. -------------------------------------------------------------------------------
  85.  
  86. New People
  87.  
  88. # Kory Hamzeh
  89. # 6640 Nevada Ave.
  90. # Canoga Park, Ca 91303
  91. # Email: UUCP:     avatar!kory or ..!uunet!psivax!quad1!avatar!kory
  92. # INTERNET: avatar!kory@quad.com
  93. alias    kory_hamzeh    quad.com!avatar!kory
  94.  
  95. I'm not professionally involved in ray tracing.  Just personally fascinated by
  96. it.  I have written a couple of ray tracers (who hasn't yet?) and I'm in the
  97. midst of designing a 24 bit frame buffer.  Since I don't do this on a
  98. professional level, I lack some of the resources required to develop real
  99. products.  I maintain a archive site with a lot of graphics related items
  100. (including Ray Tracing News).  If you need to access the archive (anonymous
  101. uucp only) please send me mail.
  102.  
  103. --------
  104.  
  105. #
  106. # Steve Lamont, sciViGuy - parallelism
  107. # NCSC,
  108. # Box 12732,
  109. # Research Triangle Park, NC 27709
  110. alias    steve_lamont    cornell!spl%mcnc.org
  111.  
  112. --------
  113.  
  114. # Bob Kozdemba - novice tracer, futures, also radiosity
  115. # Hewlett-Packard Co.
  116. # 7641 Henry Clay Blvd.
  117. # Liverpool, NY 14450
  118. # (315-451-1820 x265)
  119. alias   bob_kozdemba    hpfcla!hpfcse!hpurvmc!koz
  120.  
  121. I work for HP in Syracuse, NY as a systems engineer.  I will be attending SU
  122. starting in Jan. `89 working toward my BS with a focus in computer graphics.
  123. My job responsibilities are to provide technical support to customers and
  124. sales in the areas of Starbase graphics and X Windows.  Lately I have been
  125. experimenting with HP's SBRR product [radiosity and ray tracing part of the HP
  126. graphics package] and trying to keep abreast of futures in graphics.  I have
  127. written an extremely primitive ray tracer and I am looking for ideas on how to
  128. implement reflections and transparency.
  129.  
  130. --------
  131.  
  132. # Robert Goldberg
  133. # Queens College of CUNY
  134. # Comp. Sci. Dep't
  135. # 65-34 Kissena Blvd.
  136. # Flushing, N.Y. 11367-0904
  137. # Work : 3d Modeling algorithms, with appl. to graphics and image processing
  138. # Phone: Work -  (718) 520-5100
  139. alias    robert_goldberg    rrg@acf8.nyu.edu
  140.  
  141. --------
  142.  
  143. # John Olsen - refraction, radiosity, antialiasing, stereo images.
  144. # Hewlett-Packard, Mail Stop 73
  145. # 3404 E. Harmony Road
  146. # Ft Collins, CO 80525
  147. # (303) 229-6746
  148. # email:  olsen@hq.HP.COM, hplabs!hpfcdq!olsen
  149. alias    john_olsen    hpfcdq.hp.com!olsen
  150.  
  151. Currently, I've been spending some time tinkering with the DBWrender ray
  152. tracer making it produce 24 bit/pixel QRT-format images.  I like the QRT
  153. output format, but I like some of the features of DBWrender, such as
  154. antialiasing and fading to a background color.
  155.  
  156. I've thought about writing my own ray tracer with all the features I want, but
  157. so far I've resisted this evil temptation, and only looked for fancier ones
  158. already done by others who could not resist the temptation.  :^)
  159.  
  160. I've just installed an alias for a local ray tracing news distribution.  You
  161. can send it to raylist@hpfcjo.HP.COM (or if you can't reach, try something
  162. like hplabs!hpfcdq!hpfcjo!raylist).
  163.  
  164. --------
  165.  
  166. # Andrew Hunt, andrew@erm.oz
  167. # Earth Resource Mapping, 130 Hay St, Subiaco, Western Australia 6008
  168. # Phone: +61 9 388 2900   Fax: +61 9 388 2901
  169. # ACSnet: andrew@erm.oz
  170. alias    andrew_hunt    uunet!munnari!erm.erm.oz.au!andrew
  171.  
  172. In 1987 I implemented a "Three Dimensional Digital Differential Analyser"
  173. (3D-DDA) algorithm, along the lines of Fujimoto and Iwata`s, and used it to
  174. speed up a raytracing system under development at the Computer Science
  175. Department at Curtin University of Technology.
  176.  
  177. Recently I have got a bit busy developing commercial image processing software
  178. to devote much time to Ray Tracing.
  179.  
  180. Sometime during 1990 I plan to try to port our Ray Tracing system to a
  181. Transputer based platform.
  182.  
  183. --------
  184.  
  185. # Nick Beadman - Distributed Ray Tracing, Efficiency
  186. # School of Information Systems
  187. # University of East Anglia
  188. # Norwich
  189. # Norfolk
  190. # United Kingdom
  191. alias    nick_beadman    cmp7112@sys.uea.ac.uk
  192.  
  193. At the moment I'm trying to implement a distributed ray tracer on 8 t800s on a
  194. meiko computing surface using C, with little success I should add.  It all
  195. part of a big third year computing project worth a sixth of my degree.
  196.  
  197. --------
  198.  
  199. # Peter Miller - algorithms, realism
  200. # 18 Daintree Cr
  201. # Kaleen ACT 2617
  202. # AUSTRALIA
  203. # CONTACT LIST ONLY: subscription through melbourne
  204. #Phone:  +61-62-514611 (W)
  205. #     +61-62-415117 (H)
  206. #        UUCP    {uunet,mcvax,ukc}!munnari!neccan.oz!pmiller
  207. #        ARPA    pmiller%neccan.oz@uunet.uu.net
  208. #        CSNET   pmiller%neccan.oz@australia
  209. #        ACSnet  pmiller@neccanm.oz
  210. alias    peter_miller    cornell!uunet!munnari!neccan.necisa.oz.au!peter
  211.  
  212.   I have been interested in ray tracing since 1984, when I wrote a ray tracer
  213. before I knew it was called ray tracing!  Since then I have been reading
  214. journals and tinkering with my ray tracer.
  215.  
  216.   The last 3 years were spent marooned off the net, with very poor graphics
  217. output devices; so while some work was done on the ray tracer, I now have a
  218. lot of catching up to do.
  219.  
  220. --------
  221.  
  222. # Mike J. McNeill
  223. # VLSI and Graphics Research Group,
  224. # EAPS II,
  225. # University of Sussex,
  226. # Falmer, BRIGHTON, East Sussex, BN1 9Qt
  227. # TEL: +44 273 606755 x 2617
  228. # EMAIL: (JANET) mikejm@syma.sussex.ac.uk | (UUCP) ...mcsun!ukc!syma!mikejm
  229. alias    mike_mcneill    mike@syma.sussex.ac.uk
  230.  
  231. I am currently researching into parallelising the RT algorithm on a
  232. multiprocessor architecture.  I'm using object space subdivision using a fast
  233. octree traversal algorithm.  At the moment I'm simulating the architecture
  234. using C via TCP/IP protocols on a distributed Apollo network.  Interested in
  235. all aspects of speed-up, parallel architectures, coherency and radiosity -
  236. dare I mention animation and Linda?  Also does anyone know of a modelling
  237. package for use on the Apollos?
  238.  
  239. -------------------------------------------------------------------------------
  240.  
  241. Archive Site for Ray Tracing News, by Kory Hamzeh
  242.  
  243. Avatar is an archive site which archives Ray Tracing News, comp.source.unix,
  244. comp.sources.misc, and other goodies. Archived files can be access by any
  245. one using anonymous uucp file transfers. A list of all files in the archive
  246. can be found in avatar!/usr/archive/index. Note that this file is quite
  247. large (about 40K). If you are only interested in the graphics related 
  248. archives, snarf the file avatar!/usr/archive/comp/graphics/gfx_index.
  249. All Ray Tracing News Archives (except for the first few) are stored in 
  250. /usr/archive/comp/graphics directory. They are named in the following
  251. fashion:
  252.  
  253.     RTNewsvXXiYY.Z
  254.  
  255. Where XX is the volume number, YY is the issue number. Note that all files
  256. (except index and gfx_index) are compressed.
  257.  
  258. Before trying to access avatar, your L.sys file (or Systems file, depending
  259. on which flavor of UUCP you have) must be edited to contain the following
  260. info:
  261.  
  262. #
  263. # L.sys entry for avatar.
  264. #
  265. # NOTE: 'BREAK' tells uucico to send a break on the line. This keyword
  266. # may vary from one flavor of UUCP to another. Contact your system
  267. # administrator if your not sure.
  268. #
  269. # 1200 baud 
  270. avatar Any ACU 1200 18188847503 "" BREAK "" BREAK ogin: anonuucp
  271. #
  272. # 2400 baud
  273. avatar Any ACU 2400 18188847503 "" BREAK ogin: anonuucp
  274. #
  275. # 19200 baud (PEP mode) for Telebit Trailblazers only
  276. avatar Any ACU 19200 18188847503 ogin:-\n-ogin: anonuucp
  277.  
  278. After the previous lines are entered in you L.sys file, you may use the
  279. following command to get the index file:
  280.  
  281.     uucp avatar!/usr/archive/index /usr/spool/uucppublic/index
  282.  
  283. This command will grab the file from avatar and put it in your 
  284. /usr/spool/uucppublic directory using the name index. For example,
  285. to get Ray Tracing News Volume 2, Issue 5, execute the following
  286. command:
  287.  
  288.    uucp avatar!/usr/archive/comp/graphics/RTNewsv02i05.Z /tmp/RTnewsv02i05.Z
  289.  
  290. NOTE that some shells (like csh) use the "!" as an escape character, so
  291. use a "\" before the "!".
  292.  
  293. If you experience problems getting to any of the files, I can be reached
  294. via e-mail at:
  295.  
  296.     UUCP: avatar!kory or ..!uunet!psivax!quad1!avatar!kory
  297.     INTERNET: avatar!kory@quad.com soon to be kory@avatar.avatar.com
  298.  
  299.  
  300. Enjoy,
  301. Kory Hamzeh
  302.  
  303. -------------------------------------------------------------------------------
  304.  
  305. Ks + T > 1, by Craig Kolb and Eric Haines
  306.  
  307. From: Craig Kolb <craig@weedeater.math.yale.edu>
  308.  
  309. While adding adaptive tree pruning to rayshade (and discovering a bug), I came
  310. across a question I've had regarding the SPD for a while.
  311.  
  312. Some objects have Ks + T > 1.  How can this be?  For example, the spheres in
  313. "mountain" have Ks = .9 and T = .9.  Unless I'm completely out to lunch (which
  314. is possible), ths means that subsequent specularly reflected rays are weighted
  315. by .9, and that transmitted rays are also weighted by .9.  This leads to
  316. "glowing" objects pretty quickly.
  317.  
  318. What's wrong in the above description?  Be warned that in "nff2shade.awk", I
  319. set the "specular reflectance" to be min(Ks, 1. - T).
  320.  
  321. --------
  322.  
  323. My reply:
  324.  
  325.     Actually, true enough, Ks + T > 1 does occur in the SPD stuff.
  326. I use T in a funny way, since I was trying to make databases that would
  327. display both using hidden surface and ray tracing algorithms.  Hmmm, how
  328. to explain?  Well, imagine you have a glass ball: under the hidden surface
  329. system (without transparency), you'd like the ball to appear opaque, and
  330. so a high Kd is in order.  Now if the thing's transparent, you don't want
  331. Kd to be high.  So what I do is lower Kd and Ks by ( 1 - T ).  An admittedly
  332. weird shading model, which I've now changed a bit (i.e. reflectance and
  333. transmittance are now entirely separate).  So, your solution of turning down
  334. the reflectance is fine.  I should add that I didn't really explain all this
  335. as it's irrelevant for timings (all we care about is what rays get generated,
  336. not the final color), but I agree, it would be nicer to get a good resulting
  337. picture as a check.  I'll change that in the next update of SPD, actually...
  338. thanks for pointing it out!
  339.  
  340. --------
  341.  
  342. Craig's reply:
  343.  
  344. Ah, I get it.
  345.  
  346. I brought it up because it does make a difference timing-wise if you're using
  347. adaptive tree pruning.  Although you say in the SPD stuff that pruning
  348. shouldn't be used, Mark's raytracer currently has no option to turn it off.  I
  349. was comparing pruned vs. pruned, and noticed that I had many fewer reflected
  350. rays, since my reflectance for the transparent gears was .05 rather than .95.
  351.  
  352. -------------------------------------------------------------------------------
  353.  
  354. Quartic Roots, and "Intro to RT" Errata,
  355.     by Larry Gritz (vax5.cit.cornell.edu!cfwy)
  356.  
  357.     I was trying to find the solution to a quartic equation to solve a
  358. ray-torus intersection test.  I've gotten lots of replies, but generally fall
  359. into one of two categories:  either solve the quartic equation (I forget the
  360. reference now, but I'll send you either a reference or the formula if you want
  361. [It's in the _CRC Standard Math Tables_ book - EAH]), or by some iterative
  362. method.  Everybody says (and I have confirmed this experimentally) that
  363. solving the equation is very numerically unstable.  I have chosen to use the
  364. Laguerre method from Press, et. al. _Numerical Recipes in C_, which is slow,
  365. but seems to work, and finds all roots without needing to specify brackets for
  366. the roots.  (An advantage since although I can bracket all possible real roots
  367. with the bounding box test that I already do, I'm not really sure how many
  368. roots lie within the brackets.)
  369.  
  370.     What actually turns out to be a bigger problem is that I got the quartic
  371. coefficients from the SIGGRAPH '88 Ray Tracing Course Notes (on page 3-14 of
  372. Pat Hanrahan's section).
  373.  
  374. [Larry and I thrashed this out over a number of passes (boy, I wish I had access
  375. to Mathematica or somesuch), and came out with the following corrected
  376. equation set for those on page 93 of _An Introduction to Ray Tracing_:
  377.  
  378.     a4 & a3 - Pat's are OK.
  379.         a2 = 2(x1^2+y1^2+z1^2)((x0^2+y0^2+z0^2)-(a^2+b^2)) 
  380.               + 4 * (x0x1+y0y1+z0z1)^2 + 4a^2z1^2
  381.     a1 = 4 * (x0x1+y0y1+z0z1)((x0^2+y0^2+z0^2)-(a^2+b^2))
  382.         + 8a^2 * z0 * z1
  383.     a0 = ((x0^2+y0^2+z0^2)-(a^2+b^2))^2 - 4a^2(b^2-z^2)
  384.  
  385. - EAH]
  386.  
  387. -------------------------------------------------------------------------------
  388.  
  389. More on Quartics, by Larry Spence
  390.     From: larry@csccat.UUCP
  391.     Newsgroups: comp.graphics
  392.     Subject: Re: Solution to quartic eqn?
  393.  
  394. >I didn't ask the question, but thanks for your input.  However, Ferrari's
  395. >theorem yields a fast and very accurate answer.
  396.                   ^^^^
  397. Are you sure about this?  If it's the same closed-form solution that you find
  398. in the CRC books, etc., doesn't it use trig functions and cube roots?   Seems
  399. to me there was a paper by Kajiya in the early '80s on numerical ray tracing,
  400. and there have been several in the last few years.  My advice would be to go
  401. look at SIGGRAPH proceedings from 1981 on.  Certainly, a closed form solution
  402. like the one suggested wouldn't take advantage of any coherence in the problem,
  403. unless you wrote all the trig stuff yourself.
  404.  
  405. [Comments, anyone?  I never saw any replies. - EAH]
  406.  
  407. -------------------------------------------------------------------------------
  408.  
  409. Question: Kay and Kajiya Slabs for Arbitrary Quadrics?
  410.     by Thomas C. Palmer <palmer@mcnc.org>
  411.  
  412. Here's a question regarding slabs for arbitrary quadrics.  Kay & Kajiya '86
  413. discusses computing slabs for polygons and implicit surfaces.  The method for
  414. implicit surfaces using Lagrange multipliers and gives an example using
  415. spheres.  This is easy and works quite nicely for canonical (i.e. centered
  416. and axis aligned) quadrics.  K&K handle object rotations and translations
  417. during the slab computation.  What about quadrics that have been transformed
  418. by some arbitrary matrix prior to input and look like this:
  419.  
  420. ax^2 + 2bxy + 2cxz + 2dxw + ey^2 + 2fyz + 2gyw + hz^2 + 2izw + jw^2 = 0 ?
  421.  
  422. The xy, xz, and yz terms prevent a simple solution via Lagrange multipliers.
  423. Has anyone done this?  How do you handle quadric bounding planes?  Note that
  424. K&K cheated for the tree branchs in the tree models.  Each cylinder has
  425. endpoint capping spheres so the cylinder's extent is just the combined extent
  426. of the two spheres.
  427.  
  428. Thanks for your help -
  429.  
  430. -Tom
  431.  
  432. Thomas C. Palmer        North Carolina Supercomputing Center
  433. Cray Research, Inc.        Phone: (919) 248-1117
  434. PO Box 12732            Arpanet: palmer@ncsc.org
  435. 3021 Cornwallis Road
  436. Research Triangle Park, NC
  437. 27709
  438.  
  439. -------------------------------------------------------------------------------
  440.  
  441. Ambient Term, by Pierre Poulin (poulin@dgp.toronto.edu)
  442.  
  443. I just read your Tracing tricks in the latest Ray Tracing News. Thanks for
  444. passing that on to us, this was very interesting.
  445.  
  446. One trick you mentioned was to put a light source at the eye position in 
  447. order to eliminate the ambient term. This is a simple trick I did not know.
  448. However, you noted that highlights appears as artifacts.
  449.  
  450. Since you know that this light does not need any shadow rays, you could use
  451. only the diffuse intensity created by this light to approximate the ambient
  452. term, hence creating no undesirable highlights.
  453.  
  454. I know, this is very easy and everyone probably knows that. But just in
  455. case you would not have thought about it, I wanted to indicate it to you. I
  456. just hope I am not the 10,000th to tell you :^)
  457.  
  458. --------
  459.  
  460. My reply:
  461.  
  462.     I'm glad to hear that you enjoyed the "Tracing Tricks" article -
  463. sometimes I worry that I'm just publishing ideas that everyone already knows.
  464. I've tried having the ambient light have no highlight, and it's sort of
  465. interesting, but the lack of highlight can look a little strange for those
  466. objects where there really would be a highlight (it sort of makes them look
  467. less shiny, though it also depends upon the other lights in the scene).
  468. Nonetheless, turning it off is definitely worth exploring.  You're the first
  469. person to comment on this, actually.  Thanks for taking the time to write, and
  470. do keep in touch.
  471.  
  472. -------------------------------------------------------------------------------
  473.  
  474. Book Reviews on Hierarchical Data Structures of Hanan Samet,
  475.     by A. T. Campbell, III (atc@cs.utexas.edu)
  476.  
  477.  
  478. "The Design and Analysis of Spatial Data Structures", and 
  479. "Applications of Spatial Data Structures", by Hanan Samet,
  480. Addison-Wesley, 1990.
  481.  
  482.         Reviewed by A. T. Campbell, III
  483.  
  484. This two-volume series of books is one man's effort to provide a guide to the
  485. study of hierarchical data structures.  The topic has extensive influence on
  486. many fields, particularly computer graphics, image processing, and
  487. computational geometry.  Hanan Samet is a well-established expert in the
  488. field, with literally dozens of publications.  As a computer graphics
  489. researcher, I eagerly anticipated the books' publication.  A close examination
  490. of both volumes leads to one conclusion:  the books are extremely worthwhile.
  491.  
  492. The integration of diverse material is remarkable.  Comprehensive research
  493. results throughout the spectrum of science are drawn together seamlessly.
  494. Samet has really done a thorough job of pulling together literature from a
  495. vast collection of conferences and journals, both major and minor.
  496.  
  497. The level of explanation is good.  Samet has obviously read all of his
  498. references thoroughly.  The descriptions of algorithms reflect an
  499. understanding of what is really going on.  Even algorithms mentioned briefly
  500. are given a good essential description.
  501.  
  502. Numerous topics are covered.  Algorithms for such problems as
  503. proximity-searching, efficient storage of image and volume data, constructive
  504. solid geometry, data structure conversion, hidden surface removal, and
  505. ray-tracing fill the books.  Pseudo-ALGOL code examples present detailed
  506. explanations of how to build and traverse many of the data structures.
  507. Ray-tracing enthusiasts in particular will enjoy a detailed description of how
  508. to trace a path through an octree.
  509.  
  510. There are, however, a few problems with the presentation.  Despite the
  511. ambitious titles of the volumes, there is nowhere near as much theory or
  512. practical advice as one might expect.  The emphasis is instead on explaining
  513. literally everything at an understandable level.  While this makes the books a
  514. wonderful introduction to all sorts of stuff, the reader still needs guidance
  515. in choosing what techniques to actually use.
  516.  
  517. The title of the first volume, "The Design and Analysis of Spatial Data
  518. Structures", obviously invokes comparison with the classic text "The Design
  519. and Analysis of Computer Algorithms", by Aho, Hopcroft, and Ullman.  However,
  520. Samet's approach differs greatly from that of Aho et al.  While the data
  521. structures are described and discussed in detail, the analysis is not very
  522. formal.  Theorems and proofs, as well as detailed algorithm analysis, are not
  523. much in evidence.  A more appropriate title might simply be "An Introduction
  524. to Spatial Data Structures".
  525.  
  526. The second book, "Applications of Spatial Data Structures", covers basically
  527. every research result in hierarchical algorithms, major or minor.  It is
  528. exceptionally good at explaining techniques succinctly.  The depth is not
  529. sufficient enough to implement the techniques without referring to the
  530. original papers, however.  Additionally, the reader is given no good feel for
  531. which results should actually be used.  If a technique is commonly used in
  532. industry or never used because of impracticality, Samet never says so.  The
  533. reader who expects a "cookbook" solution to his problem will be disappointed.
  534.  
  535. The books are primarily of use for two purposes.  First, they provide a good
  536. introduction to those aspects of computational geometry and image processing
  537. which are most likely to be of interest to a person working in graphics.
  538. Second, they provide a very complete guidebook to the literature.  I would
  539. suggest that researchers and practitioners have these volumes on their
  540. reference shelves.  Due to the sheer volume of material presented, I would not
  541. recommend them for use as course textbooks.
  542.  
  543. -------------------------------------------------------------------------------
  544.  
  545. Comparison of Kolb, Haines, and MTV Ray Tracers, Part I, by Eric Haines
  546.  
  547.     I decided to compare the MTV ray tracer, the Kolb "rayshade" software,
  548. and my own modified "SBRR" ray tracing package to see the efficiency of each.
  549. My goal was to see what sort of performance was obtained by each ray tracer
  550. and note the strengths and weaknesses of each.  This first section of the
  551. report marks the state of current results, consisting of timings from the
  552. "gprof" command for each package, using the Standard Procedural Database (SPD)
  553. package.  All three packages were run on an HP 350 workstation with a floating
  554. point accelerator board.  The compiler options were "-g -G +ffpa" (debug,
  555. profile, with special floating-point only compile), using HP-UX 6.5.
  556.  
  557.     The three ray tracers were selected from all the existing packages by
  558. having the following properties:  (1) Each could handle all the primitives in
  559. the SPD package, and (2) each had some automatic efficiency scheme.  Other
  560. packages do not support all the primitives (e.g. DBW does not have cylinders,
  561. cones, or n-sided polygons), or do not have automatic efficiency generation
  562. (e.g.  QRT lets you explicitly create bounding boxes, but has no way for this
  563. to happen automatically).
  564.  
  565.     The MTV ray tracer was created by Mark VandeWettering, and uses the
  566. Kay/Kajiya hierarchy approach (i.e. sorting objects along X/Y/Z and splitting
  567. each group, recursively).  To make it conform to the requirements of the SPD
  568. tests, "minweight" was set to 0.0 in order to disable tree pruning a la Hall's
  569. method.
  570.  
  571.     Craig Kolb's "rayshade" ray tracer uses a 22x22x22 grid on all scenes.
  572. Because of the use of grids (i.e.  3DDDA), it was found to be sensitive to the
  573. background polygons used in the SPD package.  In four of the SPD scenes
  574. (balls, gears, rings, and tree) there is a "ground" polygon.  The "rayshade"
  575. software allows some user intervention in how the database is structured.  It
  576. was found that faster timings (sometimes strikingly quicker) could be obtained
  577. by leaving this background polygon out of the grid structure.  Changing the
  578. database in this manner is forbidden by the SPD tests, but both sets of
  579. results are presented because of the difference in timings.
  580.  
  581.     The SBRR package is not public domain, but rather is part of the
  582. graphics software in all HP workstations using the Turbo-SRX graphics
  583. accelerator.  It uses the Goldsmith and Salmon automatic bounding volume
  584. hierarchy method.  It should also be noted that this package is full featured,
  585. which has a corresponding slowdown effect when intersection computations are
  586. performed.  For example, polygons can be single or double sided, with
  587. different materials, colors per vertex, normals per vertex, and other
  588. combinations available.  Since the package has a "hardware assist" by using
  589. the graphics engine as an item buffer (see Weghorst and Hooper), timings are
  590. given both with and without this assist.  The times without are the fairer of
  591. the two for comparison.
  592.  
  593. Without further ado, here are the timings:
  594.  
  595. MTV       Basic
  596. -----      -----
  597. balls       12604
  598. gears       38123
  599. mount        9307
  600. rings       24286
  601. tetra        1081
  602. tree        8056
  603.  
  604.  
  605. Kolb       Basic    Modified
  606. -----      -----        --------
  607. balls       14871        3224
  608. gears       12601       11449
  609. mount        2989        2989 (i.e. same - no modification needed)
  610. rings        8348        8103
  611. tetra         836         836 (i.e. same - no modification needed)
  612. tree       18957        2505
  613.  
  614.  
  615. SBRR       Basic    Item Bfr
  616. -----      -----        --------
  617. balls        5027        4126
  618. gears       13561       12776
  619. mount        5440        3749
  620. rings       11044       10446
  621. tetra        1187         457
  622. tree        3229        2719
  623.  
  624.  
  625. So, considering the MTV ray tracer as 1.00, here are the relative performance
  626. times of each tracer - (MTV time / RT time) - i.e. higher is faster, and can
  627. be thought of as how many times faster it is:
  628.  
  629. SPD    MTV-Base    Kolb-Bas    Kolb-Mod    SBRR-Bas    SBRR-Bfr
  630. -----   --------    --------    --------    --------        --------
  631. balls      1.00          0.85          3.91          1.40          3.05
  632. gears      1.00          3.02          3.32          2.81          3.33
  633. mount      1.00          3.11        <--same          1.71          2.48
  634. rings      1.00          2.91          3.00          2.20          2.32
  635. tetra      1.00          1.29        <--same          0.91          2.37
  636. tree      1.00          0.42          3.22          2.50          2.96
  637.  
  638. Some interesting phenomena are revealed by the statistics.  The "tetra"
  639. database is pretty much the same absolute speed for everyone.  However, given
  640. the performance for other scenes, it is noteworthy that MTV performs
  641. relatively faster on this than others.  I've noticed this, too, when trying
  642. Kay/Kajiya myself - this scheme just soars on tetra, though I am not sure why.
  643. Perhaps it is the smallness and regularity of the objects, which would go well
  644. with Kay/Kajiya's assumption that using the centroid of these is reasonable.
  645. For other databases one can imagine better hierarchies that those constructed
  646. by Kay/Kajiya.  For example, with mount, the four spheres above the fractal
  647. mountain should be in their own cluster just off the top of the hierarchy
  648. tree.
  649.  
  650. The "tetra" scene is a strange test in that most (around 81%) of the scene
  651. is background, so what we tend to test here is affected more by how fast one can
  652. traverse a scene, set up rays, shade, and store values in a file.  It will take
  653. further analysis to see where the time is spent.
  654.  
  655. The Kolb ray tracer is interesting in how much its efficiency scheme is
  656. affected by the geometry of the scene.  The "teapot in a football stadium"
  657. effect I've written about previously hits grid efficiency schemes with a
  658. vengeance.  For example, moving the ground polygon from the grid subdivision
  659. to outside of it makes rayshade perform 4.6 times faster for balls, and 7.7
  660. times faster for tree!  The point is that grids perform best when the scene is
  661. relatively "compact".  The large ground polygons in these scenes cause the
  662. entire grid to get larger in two directions, and so make many more objects
  663. fall inside but a few grid squares, thereby ruining much of the efficiency of
  664. the grid.
  665.  
  666. Comparing Kolb to MTV, we see that overall Kolb is faster.  Kolb does worse on
  667. balls and tree using the unmodified database, but otherwise outperforms MTV,
  668. being about twice as fast.  When the ground polygon is taken out of the grid
  669. subdivision, Kolb is more than 3 times faster for all cases except tetra.
  670.  
  671. Comparing SBRR and MTV shows SBRR to be faster for most cases, with MTV being
  672. slightly faster for tetra.  Overall SBRR is almost twice as fast with its
  673. basic performance, and about 2.75 times faster when the item buffer is used.
  674.  
  675. Comparing SBRR and Kolb is a bit tricky, since there are two tests of each.
  676. Taking the basic tests in each, Kolb and SBRR are comparable: Kolb outperforms
  677. SBRR in four cases, and SBRR outperforms Kolb in two (and for one of those,
  678. tree, it is almost 6 times faster).  SBRR has some things to learn from Kolb
  679. (which is why I'm doing all this, anyway), as Kolb's modified database results
  680. point towards the fact that faster performance is possible.
  681.  
  682. So, on the basis of pure raw timings, Kolb and SBRR without modifications or
  683. accelerators are of comparable speed.  With user intervention into the
  684. database structure, Kolb can become noticeably faster.  It should also be
  685. noted that Kolb uses a default of 22x22x22 grid cells, which is under user
  686. control and so could be tuned to further improve performance.
  687.  
  688. Actually, this is an interesting open question:  what heuristics can be used
  689. to determine a reasonable grid size for a scene?  Also, is there a reasonable
  690. way to determine if such performance destroyers such as ground polygons are
  691. present automatically, and so remove them from the grid subdivision itself?
  692. David Jevans' and Brian Wyvill's work on nested grid subdivisions ("Adaptive
  693. Voxel Subdivision for Ray Tracing", Proceedings of Graphics Interface '89, p.
  694. 164-172) might lead to a less variable performance and to greater overall
  695. speed.  Craig and I have discussed this, but unfortunately he has no time to
  696. try this out - perhaps someone out there can experiment and compare
  697. results.
  698.  
  699. As mentioned, this is research in progress.  My next step will be to analyze
  700. the statistics generated by each program and see where time is spent.
  701.  
  702. -------------------------------------------------------------------------------
  703.  
  704. Raytracer Performance of MTV, by Steve Lamont
  705.  
  706. >   Could you pass on your timings on ray tracer performance on various
  707. > machines and any thoughts or experiences you want to share about the subject?
  708.  
  709. The parallelization was done in a brute force manner, forking processes and
  710. dividing the work by the number of processes.  The parent process remains
  711. behind and reads the scanlines in a round robin fashion from pipes.  There is
  712. no communication from the parent to the child processes once the forking has
  713. been done; the ray tracing routines simply march down the scan lines.  This
  714. approach works well on a homogeneous architecture where all processes run at
  715. approximately the same speed and no process "dries up" or runs out of work to
  716. do.
  717.  
  718. This works well for single frames.  However, my approach for a large animation
  719. is to simply parcel out work on a frame per processor basis.
  720.  
  721. I've built the MTV raytracer on the Cray, the IRIS, and the Ardent Titan...
  722. and here are some preliminary results on a 128 x 128 test image (the balls
  723. image with reflections but no refractions, 3 light sources, 11 primitives (16
  724. with bounding volumes)
  725.  
  726.             processes
  727.               (CPU seconds)
  728.     Machine        1    4    Notes
  729.  
  730.     Y-MP/8-432    4.0    1.0    -hopt,intrinsics,vector
  731.     IRIS (4D/240)*  8.2    2.1    -O2 (MIPS R3000/3010)
  732.     Titan (P2)     30.0     7.7    -O3 (MIPS R2000 + prop. vector/fp unit)
  733.     Titan (P3)    7.2    ---    Run by vendor. (MIPS R3000/3010 +
  734.                     proprietary vector unit)
  735.  
  736. Wall clock times improved by a factor of 2.5 to 3, which squares pretty well
  737. with Amdahl's law as extended for small parallel architectures.
  738.  
  739. These are *preliminary* results with respect to the Titan -- we've only had it
  740. for a couple of weeks.  On none of the machines did MTV vectorize in any way
  741. to speak of.  In fact, turning off vectorization improves performance for
  742. several "short vector" loops; e.g., loops of vector length 3.
  743.  
  744. Timings were done on a fairly heavily loaded Cray and an empty IRIS and Titan.
  745.  
  746. The Cray is a Y-MP with four processors (upgradable to 8, hence the 8-4) and
  747. 32 mWords of central memory.  There is also a 128 mWord SSD (Solid-state
  748. storage device).  We also have 40 gBytes of rotating storage (a combination of
  749. DS-40s and DD-49s).
  750.  
  751. [*] Actually, this machine is a CDC Cyber 910-624 but the only difference
  752. between it and a "genuine" Silicon Graphics IRIS 4D/240 is the color of its
  753. box and the binding on the manuals.
  754.  
  755. [Disclaimer:  These comments are solely the responsibility of the author and
  756. no endorsement by the North Carolina Supercomputing Center should be inferred]
  757.  
  758. Steve Lamont, sciViGuy            EMail:    spl@ncsc.org
  759. NCSC, Box 12732, Research Triangle Park, NC 27709
  760.  
  761. -------------------------------------------------------------------------------
  762.  
  763. BRL-CAD Ray Tracer Timings, by Gavin Bell (gavin@krypton.sgi.com)
  764.  
  765. These results are third-hand; I can vouch for the accuracy of our machine's
  766. results, but the BRL people may have more recent results to share.  The only
  767. experience I have with ray-tracing timing on our machines is with a simple,
  768. interactive ( :-> ) ray-tracer demo called 'flyray'.  I modified it to be
  769. fully parallelized; it uses one CPU to display a real-time display of the
  770. scene being ray-traced (complete with rays shooting into and bouncing around
  771. the scene), and the other N-1 CPUs to compute ray-object intersections (these
  772. results are shown in a separate window).  As for timing... runs REAL fast on
  773. an 8 CPU system.
  774.  
  775. What follows is a form letter I've been sending to people who asked for
  776. ray-tracing timings.
  777.  
  778. ------------------------
  779.  
  780. This is a response to all of those people who asked me for the BRL-CAD
  781. ray-tracing benchmark results.  I'm surprised at how many of you there are!
  782.  
  783. First, a little bit about myself.  I work in Technical Marketing, the 'Demos
  784. and Benchmarks' group here at Silicon Graphics.  I'm not usually involved in
  785. benchmarks; I work mainly on our demos.
  786.  
  787. The rest of this text comes directly from a 'SGI Benchmark Summary' prepared
  788. by one of our Marketing people.  The numbers are communicated to him by the
  789. software engineer who did the benchmark.  These benchmark summaries are
  790. communicated to salespeople in a weekly newsletter as soon as the results come
  791. in.  Other summaries done include:
  792.  
  793. 'INDUSTRY STANDARD':
  794. Dhrystones, Digital Review Labs, Linpack, Livermore Fortran Kernals, MUSBUS,
  795. Whetstones.
  796.  
  797. OTHERS:
  798. LES50 (computational fluid dynamics), Moldflow (finite element analysis),
  799. Molecular Dynamics, Nord, UFLA, GROMOS (all computational chemistry).
  800.  
  801. If you want more information on any of these benchmarks, please see a SGI
  802. sales rep-- I can't keep typing in all of these numbers!!  Also, please
  803. remember that these benchmarks were done for a specific customer, who was
  804. interested in a specific machine, so most of them were not benchmarked on our
  805. whole product line (the 'Industry Standard' benchmarks, however, are usually
  806. run on all of our products).
  807.  
  808. APPLICATION  BENCHMARK NAME  CUSTOMER
  809. -----------  --------------  --------
  810. Rendering    BRL-CAD 3.7     US Army Ballistic Research Lab
  811.  
  812. LANGUAGE     SUMMARY DATE
  813. --------     ------------
  814. C            9/5/89
  815.  
  816. DESCRIPTION
  817. -----------
  818. The BRL-CAD benchmark is a part of the US Army Ballistic Research Laboratory's
  819. BRL-CAD package.  The core of the BRL-CAD benchmark is a ray-tracing program
  820. which consists of about 150,000 lines of C code.  Computations are performed
  821. in double precision floating point.
  822.  
  823. Five separate data bases are input to the ray tracing program, resulting in
  824. six performance ratings (one for each, plus a total which is the mean of the
  825. other five) .  When rendered, each data base will produce a 512x512x24 bit
  826. color shaded image.  The images are of increasing complexity, and are
  827. identified as 'Moss', 'World', 'Star', 'Bldg' and 'M35'.
  828.  
  829. RESULTS
  830. -------
  831. The result of this benchmark is reported as rays traced per second, and
  832. referred to as Ray Tracing Figure of Merit (RTFM).  Higher numbers indicate
  833. better performance.
  834.  
  835. The code was parallelized by inserting user directives to create multiple
  836. processes to trace rays.
  837.  
  838. RESULTS FOR SGI MACHINES:
  839.     Note:  The actual report has nice graphs here.
  840. Machine        RTFM
  841. -------------------
  842. 1x16 (4D/80)    714
  843. 2x16 (4D/120)  1358
  844. 4x25 (4D/240)  5034
  845. 8x25 (4D/280)  7434
  846.     Note:  NxMM numbers refer to the number of processors in the
  847.     machine (N) running at MM MHZ.
  848.  
  849. COMPETITIVE RESULTS:
  850. Machine   # Processors  RTFM  Relative Performance
  851. --------------------------------------------------
  852. Vax 780        1          77     1.0
  853. Sun3           1          88     1.1
  854. Convex C120    1         163     3.6
  855. Sun4           1         435     5.6
  856. SGI 4D/120S    2        1358    17.5
  857. Alliant FX/80  8        2783    33.6
  858. SGI 4D/240S    4        4456    70.4
  859. Cray X-MP/48   4        7217   116.1
  860. SGI 4D/280     8        7434   119.7
  861.  
  862. ANALYSIS
  863. --------
  864. The BRL-CAD benchmark exhibits excellent speedup as processors are added.
  865. This is due to the coarse granularity inherent in the ray tracing problem
  866. being solved.  Each ray is processed independently, with no data dependencies
  867. among the rays.  This means that multiple processors can each work on separate
  868. rays simultaneously, with minimal need for synchronization among processors.
  869.  
  870. While the code is highly parallelizable, it is not efficiently vectorizable
  871. because of short vector lengths.  The combination of these two
  872. characteristics explain the phenomenal performance of Silicon Graphics
  873. machines relative to vector machines like Cray and Alliant.
  874.  
  875. The characteristics of this benchmark that lead to high performance by the
  876. Silicon Graphics machines are common to all ray tracing applications.
  877.  
  878. --------
  879.  
  880. Here is another note from Gavin:
  881.  
  882. My only experience with the BRL ray-tracer came when I was at Princeton
  883. University - I installed it on Silicon Graphics machines there for the
  884. Graphics Lab.  That was two years ago; as far as I could tell, it didn't use
  885. octrees or any other space-partitioning algorithm.  I used a ray-tracer
  886. written at Princeton (the precursor of what is now Craig Kolb's rayshade
  887. program; Craig and I had the same thesis advisor) which did do octrees; it was
  888. infinitely faster than the BRL beast.
  889.  
  890. -------------------------------------------------------------------------------
  891.  
  892. BRL-CAD Benchmarking and Parallelism, by Mike Muuss (mike@BRL.MIL)
  893.  
  894. I'm sort of on vacation right now, so I'm going to cop out and just send you
  895. the TROFF input for several things that I have handy about how we benchmark
  896. ray-tracing in the BRL-CAD Package.
  897.  
  898. The first one is our benchmark summary paper.
  899.  
  900. The second one is a portion of a paper that I wrote called ``Workstations,
  901. Networking, Distributed Graphics, and Parallel Processing''.
  902.  
  903. You may publish and/or redistribute both documents as you wish.  Note that the
  904. United States Government holds the "copyright", ie, it is not permissible to
  905. copyright this material.
  906.  
  907. [These papers are rather lengthy, so I won't include them in this issue.
  908. If you would like copies, look at the archive sites for Muuss.benchmrk and
  909. Muuss.parallel, or write me. - EAH]
  910.  
  911.  
  912. ======== USENET cullings follow ===============================================
  913.  
  914. Rayshade Patches Available, by Craig Kolb
  915.     From: craig@weedeater.math.yale.edu
  916.     Newsgroups: comp.graphics
  917.     Organization: Math Department, Yale University
  918.  
  919. Patches 1-3 for rayshade v3.0 are available via anonymous ftp from
  920. weedeater.math.yale.edu (new address:  130.132.23.17) in directory
  921. pub/rayshade.3.0/patches.  The patches fix several minor bugs, clean up the
  922. documentation, and provide new features.
  923.  
  924. Several people have expressed an interest in 'trading' rayshade input files.
  925. If you have an interesting input file that you'd like to share, feel free to
  926. deposit it in the "incoming" directory on weedeater or send it to me via
  927. email.  I will make these files available in the pub/Rayinput directory on
  928. weedeater.
  929.  
  930. Rayshade is supposedly "on the verge" of appearing in comp.sources.unix,
  931. patches and all.
  932.  
  933. -------------------------------------------------------------------------------
  934.  
  935. Research and Timings from IRISA, by Didier Badouel
  936.     From: badouel@irisa.irisa.fr
  937.     Newsgroups: comp.graphics
  938.     Organization: IRISA, Rennes (Fr)
  939.  
  940. We have a parallel raytracer (called PRay) at IRISA which as MTV uses NFF
  941. description databases.  This raytracer has been implemented on an iPSC/2, on a
  942. SEQUENT BALANCE and also on serial computers (SUN3, GOULD NP1) to make better
  943. comparisons.
  944.  
  945. I give you the various synthesis times for the well known 'Teapot' database.
  946. The image has been rendering with a 512X512 resolution with 3 light sources.
  947. Results are as follows :
  948.  
  949.                         #PEs    Time (in sec.)
  950.         ________________________________________
  951.         SUN3:                   8877 (~ 2h27mn)
  952.         ________________________________________
  953.         GOULD NP1:              1642 (~ 27mn)
  954.         ________________________________________
  955.         SEQUENT BALANCE 1       37121 (~ 10h18mn)
  956.                         2       18567
  957.                         3       12381
  958.                         4       9285
  959.                         5       7431
  960.                         6       6197
  961.                         7       5311
  962.                         8       4656
  963.                         9       4138 (~ 1h9mn)
  964.         ________________________________________
  965.         iPSC/2          1       6294 (~ 1h45mn)
  966.                         2       3332
  967.                         4       1700
  968.                         8       860
  969.                         16      440
  970.                         32      224
  971.                         64      119 (~ 2mn)
  972.         ________________________________________
  973.  
  974. The code running on the iPSC/2 emulates a virtual shared memory over the local
  975. PEs.  The database is not duplicated but all the local memories are used.  The
  976. remaining memory after loading code and data is used as a cache to speed up
  977. low global accesses.
  978.  
  979. -----
  980.  
  981.         In order to benchmark our parallel raytracer running on an iPSC/2,
  982. which use Eric Haines' NFF file format as input, we would like to know 
  983. if other people have a parallel raytracer using these databases
  984. in order to make some comparisons.
  985.  
  986.         One of our goals is to render the largest possible 
  987. database.  For the moment, we have rendered the 'tetra10'
  988. database:
  989.         - the database contains more than 1 million polygons (1048576
  990.           polygons)
  991.         - the size of the database with its 'object access structure' (a
  992.           grid) is 140 MO.
  993.         - the synthesis time is 526 seconds on the iPSC/2 with 64 nodes
  994.           and 4 MO node memory.
  995.         - however, on account of using NFF text file format, reading the
  996.           input is  very slow (more than 3 hours for 'tetra10') when using 
  997.           YACC and LEX. Furthermore, our iPSC/2 configuration does not have
  998.           I/O  node  system.
  999.  
  1000. ________________________________________________________________
  1001.   Didier  BADOUEL                       badouel@irisa.fr
  1002.   INRIA / IRISA                         Phone : +33 99 36 20 00
  1003.  Campus Universitaire de Beaulieu       Fax :   99 38 38 32
  1004.  35042 RENNES CEDEX - FRANCE            Telex : UNIRISA 950 473F
  1005. ________________________________________________________________
  1006.  
  1007. -------------------------------------------------------------------------------
  1008.  
  1009. Concerning Smart Pixels, by John S. Watson
  1010.     From: watson@ames.arc.nasa.gov (John S. Watson)
  1011.     Newsgroups: comp.graphics
  1012.     Organization: NASA - Ames Research Center
  1013.  
  1014. In article <207400033@s.cs.uiuc.edu> mccaugh@s.cs.uiuc.edu writes:
  1015. >
  1016. > Does anyone know of a system with "smart" pixels? 
  1017.  
  1018. Once upon a time I wrote a ray tracer in which the pixels used heuristics to
  1019. determine their sampling rate.  Since the reason for doing it was to speed
  1020. things up, the heuristic had to be simpler than casting a ray( s, if
  1021. sub-sampling).  I used difference in previous pixels values, with a little
  1022. randomness tossed in.  So pixels changing quickly were sampled every frames,
  1023. while pixels that were hardly ever changing were sampled only once every 10
  1024. frames.  The results:  much faster, but with a graininess on the edges of
  1025. moving objects.  I needed to make the pixels more aware of what was happening
  1026. with its neighbors.  Never got around to doing that.
  1027.  
  1028. Another problem is big pictures have lots of pixels ... 512x512 = 0.25 million.
  1029. To be smart you must have a memory.
  1030.  
  1031. To save memory, I combined the above with an Area-of-Interest/Variable Acuity
  1032. (AOIVA) Ray Tracer.
  1033.  
  1034. Hope this helps, 
  1035. John S. Watson, Civil Servant from Hell        ARPA: watson@ames.arc.nasa.gov 
  1036. NASA Ames Research Center                      UUCP:  ...!ames!watson
  1037. Any opinions expressed herein are, like, solely the responsibility of the, like,
  1038. author and do not, like, represent the opinions of NASA or the U.S. Government.
  1039.  
  1040. -------------------------------------------------------------------------------
  1041.  
  1042. Input Files for DBW Render, by Tad Guy
  1043.     From: tadguy@cs.odu.edu (Tad Guy)
  1044.     Newsgroups: comp.graphics
  1045.     Organization: Old Dominion University, Norfolk, VA
  1046.  
  1047. In article <6475@pt.cs.cmu.edu> te07@edrc.cmu.edu (Thomas Epperly) writes:
  1048.    I was wondering if anyone had any neat input files for DBW_Render available
  1049.    for anonymous ftp.
  1050.  
  1051. xanth.cs.odu.edu as /amiga/dbw.zoo.  If you have a network of, say, sun
  1052. workstations, you might as well get /amiga/distpro.zoo, which will allow to
  1053. distribute the computations over many machines.
  1054.  
  1055. -------------------------------------------------------------------------------
  1056.  
  1057. Intersection with Rotated Cubic Curve Reference, by Richard Bartels
  1058.     From: rhbartels@watcgl.waterloo.edu
  1059.     Newsgroups: comp.graphics
  1060.     Organization: U. of Waterloo, Ontario
  1061.  
  1062. In article <1445@tukki.jyu.fi> toivanen@tukki.jyu.fi (Jari Toivanen) writes:
  1063.  :
  1064.  :I would like to know is there any simple and effective solution to
  1065.  :following problem:
  1066.  :
  1067.  : [intersecting a ray with a rotated cubic curve]
  1068.  :
  1069.  :Jari Toivanen                           Segments are for worms ;-)
  1070.  :University of Jyvaskyla, Finland        Internet: toivanen@tukki.jyu.fi
  1071.  
  1072. Look at the article:
  1073.  
  1074.         Ray Tracing Objects Defined By Sweeping Planar Cubic Splines
  1075.         Jarke J. van Wijk
  1076.         ACM Transactions on Graphics
  1077.         Vol. 3, No. 3, July, 1984, pp. 223-237
  1078.  
  1079. I believe that the author subsequently wrote a whole book on the subject.
  1080.  
  1081. [Incidentally, this article also has a method for quickly intersecting a tight
  1082. fitting bounding volume around such curves.  I've found this test useful for
  1083. use as a torus bounding volume.  Also, does anyone know of the existence and
  1084. the name of the book Richard mentions?  - EAH]
  1085.  
  1086. -------------------------------------------------------------------------------
  1087.  
  1088. Needed: Quartz surface characteristics, by Mike Macgirvin
  1089.     From: mike@relgyro.stanford.edu
  1090.     Newsgroups: comp.graphics
  1091.     Organization: Stanford Relativity Gyro Experiment (GP-B)
  1092.  
  1093. I am in need of the surface characteristics for fused quartz.  Ambient,
  1094. diffuse and specular color characteristics, Phong coefficent, reflectance,
  1095. and transparency.  I have the index of refraction (Well, I have to average it,
  1096. c'est la vie).
  1097.  
  1098. I have attempted to derive these experimentally, but find the resulting traced
  1099. image lacking in many ways, and a simulation visualization I am working on
  1100. requires accuracy.
  1101.  
  1102. I am using Kolb's 'rayshade' if it affects your responses.
  1103.  
  1104. Please respond via e-mail if possible.
  1105.  
  1106. -------------------------------------------------------------------------------
  1107.  
  1108. Solution to Smallest Sphere Enclosing a Set of Points, by Tom Shermer
  1109.     From: shermer@cs.sfu.ca
  1110.     Newsgroups: comp.graphics
  1111.     Organization: School of Computing Science, SFU, Burnaby, B.C. Canada
  1112.  
  1113. >I need the solution for the following problem:
  1114. >find the smallest sphere that encloses a set of given points, in both
  1115. >2-D and 3-D (or even n-D, if you like).
  1116. >
  1117.  
  1118. This problem can be solved in linear time (in any fixed dimension)
  1119. by the technique of prune-and-search (sometimes called ``Megiddo's
  1120. Technique''), either directly or by first converting the problem
  1121. to a linear program.  The most relevant reference (for 2d & 3d) is:
  1122.  
  1123. Linear-time Algorithms for Linear Programming in R^3 and Related Problems,
  1124.         Nimrod Megiddo, SIAM J. Comput, v. 12, No. 4, Nov 1983, pp. 759-776.
  1125.  
  1126.  
  1127. Other related references:
  1128.  
  1129. Linear time algorithms for two- and three- variable linear programs,
  1130.         M.E. Dyer, SIAM J. Comput, v. 13, 1984, 31-45.
  1131.  
  1132. On a multidimensional search technique and its application to the
  1133. Euclidean one-center problem,
  1134.         M. E. Dyer, Dept. Math and Stats TR, Teesside Polytechnic,
  1135.         Middlesbrough, Cleveland TS1 3BA, UK, 1984.
  1136.  
  1137. Linear programming in linear time when the dimension is fixed,
  1138.         N. Megiddo, JACM 31, 1984, 114-127
  1139.  
  1140. The weighted Euclidean 1-center problem,
  1141.         N. Megiddo, Mathematics of Operations Research 8, 1983, 498-504
  1142.  
  1143. On the Ball Spanned by Balls
  1144.         N. Megiddo, manuscript (this may have appeared in the literature
  1145.         by now)
  1146.  
  1147. -------------------------------------------------------------------------------
  1148.  
  1149. True Integration of Linear/Area Lights, by Kevin Picott
  1150.     From: kpicott@alias.UUCP
  1151.     Newsgroups: comp.graphics
  1152.     Organization: Alias Research Inc.
  1153.  
  1154. Has anyone seen any work done on evaluating the diffuse and specular
  1155. illumination produced by linear and/or area lights?  I have checked all the
  1156. standard sources and all information I find gets to the point where the
  1157. integration is set up and then a little hand waving is performed accompanied
  1158. by the magical words "numerically integrated".  This works but is too slow
  1159. for my purposes.  Does anyone know of any work done in different directions
  1160. (ie faster evaluation) ?
  1161.  
  1162. --------
  1163.  
  1164. Thanks to all who replied to my query about linear and area lights.
  1165.  
  1166. In the area of linear lights, two papers on analytical solutions were found.
  1167. The first, by John Amanatides and Pierre Poulin has been submitted to
  1168. Eurographics '90 and I'll hopefully get a look at that soon.
  1169.  
  1170. The second, "Shading Models for Point and Linear Sources", ACM TOGS, 4(2),
  1171. April 1985, pp. 124-146.  by T. Nishita, I. Okamura, E. Nakamae, proposes
  1172. an analytic solution to the diffuse component, but only under certain
  1173. circumstances.
  1174.  
  1175. The latter unfortunately reduces to numerical integration in the majority of
  1176. cases where spline surfaces are involved, although a method of optimization is
  1177. given that reduces computation time for the numerical integration.  This
  1178. method would seem to be suited to lighting parallel and perpendicular to the
  1179. illuminated surfaces.
  1180.  
  1181. There was also a paper entitled "A Comprehensive Light-Source Description for
  1182. Computer Graphics", IEEE CG&A, July 1984, by Channing P. Verbeck and Donald
  1183. P. Greenberg that approximates both linear and area light sources as a series
  1184. of point sources.  This is a compromise to numerical integration, but is still
  1185. computationally expensive.
  1186.  
  1187. In summary, the analytical solution to linear sources exists and is
  1188. calculable, at least for the diffuse component.  The specular component
  1189. exists, but direct calculation is almost expensive as numerical integration.
  1190.  
  1191. As far as area light sources are concerned... no analytical solutions were
  1192. found.  In fact, from the work examined I was left with the impression that
  1193. even if the solution existed it would not be very useful from a light
  1194. illumination point of view (ie non-radiosity).  (Comments?)
  1195.  
  1196. --
  1197.  Kevin Picott   aka   Socrates   aka   kpicott%alias@csri.toronto.edu
  1198.  Alias Research Inc.  R+D     Toronto, Ontario... like, downtown
  1199.  
  1200. -------------------------------------------------------------------------------
  1201. END OF RTNEWS
  1202.  
  1203.  
  1204.